{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Image Classification - Quick Start\n",
    "\n",
    ":label:`sec_imgquick`\n",
    "\n",
    "\n",
    "In this quick start, we'll use the task of image classification to illustrate how to use AutoGluon’s APIs. \n",
    "\n",
    "In this tutorial, we load images and the corresponding labels into AutoGluon and use this data to obtain a neural network that can classify new images. This is different from traditional machine learning where we need to manually define the neural network and then specify the hyperparameters in the training process. Instead, with just a single call to AutoGluon's [fit](/api/autogluon.task.html#autogluon.task.ImageClassification.fit) function, AutoGluon automatically trains many models with different hyperparameter configurations and returns the model that achieved the highest level of accuracy.\n",
    "\n",
    "We begin by specifying [ImageClassification](/api/autogluon.task.html#autogluon.task.ImageClassification) as our task of interest as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import autogluon as ag\n",
    "from autogluon import ImageClassification as task"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Create AutoGluon Dataset\n",
    "\n",
    "For demonstration purposes, we use a subset of the [Shopee-IET dataset](https://www.kaggle.com/c/shopee-iet-machine-learning-competition/data) from Kaggle.\n",
    "Each image in this data depicts a clothing item and the corresponding label specifies its clothing category.\n",
    "Our subset of the data contains the following possible labels: `BabyPants`, `BabyShirt`, `womencasualshoes`, `womenchiffontop`.\n",
    "\n",
    "We download the data subset and unzip it using the following commands:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'data'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "filename = ag.download('https://autogluon.s3.amazonaws.com/datasets/shopee-iet.zip')\n",
    "ag.unzip(filename)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After the dataset is downloaded, we load it into a [`Dataset`](/api/autogluon.task.html#autogluon.task.ImageClassification.Dataset) object:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "dataset = task.Dataset('data/train')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Load the test dataset as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_dataset = task.Dataset('data/test', train=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Use AutoGluon to Fit Models\n",
    "\n",
    "Now, we fit a classifier using AutoGluon as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Starting Experiments\n",
      "Num of Finished Tasks is 0\n",
      "Num of Pending Tasks is 2\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "scheduler: FIFOScheduler(\n",
      "DistributedResourceManager{\n",
      "(Remote: Remote REMOTE_ID: 0, \n",
      "\t<Remote: 'inproc://172.16.48.86/11882/1' processes=1 threads=4, memory=64.38 GB>, Resource: NodeResourceManager(4 CPUs, 1 GPUs))\n",
      "})\n",
      "\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "42d9c69fd4ac48489a146297ff21b4f5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=2.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'net.choice': 0, 'optimizer.learning_rate': 0.0031622777, 'optimizer.wd': 0.0003162278} and reward: 0.58125\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Finished Task with config: {'net.choice': 0, 'optimizer.learning_rate': 0.0022144233456630087, 'optimizer.wd': 0.0004979801648537447} and reward: 0.58125\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Saving Training Curve in checkpoint/plot_training_curves.png\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "classifier = task.fit(dataset,\n",
    "                      epochs=10,\n",
    "                      ngpus_per_trial=1,\n",
    "                      verbose=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Within `fit`, the dataset is automatically split into training and validation sets.\n",
    "The model with the best hyperparameter configuration is selected based on its performance on the validation set.\n",
    "The best model is finally retrained on our entire dataset (i.e., merging training+validation) using the best configuration.\n",
    "\n",
    "The best Top-1 accuracy achieved on the validation set is as follows:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Top-1 val acc: 0.581\n"
     ]
    }
   ],
   "source": [
    "print('Top-1 val acc: %.3f' % classifier.results['best_reward'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Predict on a New Image\n",
    "\n",
    "Given an example image, we can easily use the final model to `predict` the label (and the conditional class-probability):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The input picture is classified as [BabyShirt], with probability 0.62.\n"
     ]
    }
   ],
   "source": [
    "# skip this if training FashionMNIST on CPU.\n",
    "image = 'data/test/BabyShirt/BabyShirt_323.jpg'\n",
    "ind, prob, _ = classifier.predict(image)\n",
    "\n",
    "print('The input picture is classified as [%s], with probability %.2f.' %\n",
    "      (dataset.init().classes[ind.asscalar()], prob.asscalar()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Evaluate on Test Dataset\n",
    "\n",
    "We now evaluate the classifier on a test dataset.\n",
    "\n",
    "The validation and test top-1 accuracy are:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "849ce8c528494e0eafbd4f15e6ab503a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "VBox(children=(HBox(children=(IntProgress(value=0, max=1), HTML(value=''))), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Top-1 test acc: 0.766\n"
     ]
    }
   ],
   "source": [
    "test_acc = classifier.evaluate(test_dataset)\n",
    "print('Top-1 test acc: %.3f' % test_acc)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_autogluon",
   "language": "python",
   "name": "conda_autogluon"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "1ec3f6c6b8ca4aa1bdd1fa8cc7581e74": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HBoxModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HBoxModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HBoxView",
       "box_style": "",
       "children": [
        "IPY_MODEL_402ad6ca4d6d4f249cedd6c2df533624",
        "IPY_MODEL_f1165791c8e6499ea9f58d68d1d6e8fc"
       ],
       "layout": "IPY_MODEL_7602543d462b48de959c45e4d87b32a5"
      }
     },
     "402ad6ca4d6d4f249cedd6c2df533624": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "FloatProgressModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "FloatProgressModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "ProgressView",
       "bar_style": "success",
       "description": "100%",
       "description_tooltip": null,
       "layout": "IPY_MODEL_e4399cd9b542485d8bc53805c842c37f",
       "max": 2,
       "min": 0,
       "orientation": "horizontal",
       "style": "IPY_MODEL_e47f8ec990fb422aa66b18592889f621",
       "value": 2
      }
     },
     "50db81c266e249b4b1c80d1463b2e541": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "DescriptionStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "DescriptionStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "description_width": ""
      }
     },
     "7602543d462b48de959c45e4d87b32a5": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "df5618780b904ffd92907de3e6a2bbfd": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e4399cd9b542485d8bc53805c842c37f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.2.0",
      "model_name": "LayoutModel",
      "state": {
       "_model_module": "@jupyter-widgets/base",
       "_model_module_version": "1.2.0",
       "_model_name": "LayoutModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "LayoutView",
       "align_content": null,
       "align_items": null,
       "align_self": null,
       "border": null,
       "bottom": null,
       "display": null,
       "flex": null,
       "flex_flow": null,
       "grid_area": null,
       "grid_auto_columns": null,
       "grid_auto_flow": null,
       "grid_auto_rows": null,
       "grid_column": null,
       "grid_gap": null,
       "grid_row": null,
       "grid_template_areas": null,
       "grid_template_columns": null,
       "grid_template_rows": null,
       "height": null,
       "justify_content": null,
       "justify_items": null,
       "left": null,
       "margin": null,
       "max_height": null,
       "max_width": null,
       "min_height": null,
       "min_width": null,
       "object_fit": null,
       "object_position": null,
       "order": null,
       "overflow": null,
       "overflow_x": null,
       "overflow_y": null,
       "padding": null,
       "right": null,
       "top": null,
       "visibility": null,
       "width": null
      }
     },
     "e47f8ec990fb422aa66b18592889f621": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "ProgressStyleModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/base",
       "_view_module_version": "1.2.0",
       "_view_name": "StyleView",
       "bar_color": null,
       "description_width": "initial"
      }
     },
     "f1165791c8e6499ea9f58d68d1d6e8fc": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "1.5.0",
      "model_name": "HTMLModel",
      "state": {
       "_dom_classes": [],
       "_model_module": "@jupyter-widgets/controls",
       "_model_module_version": "1.5.0",
       "_model_name": "HTMLModel",
       "_view_count": null,
       "_view_module": "@jupyter-widgets/controls",
       "_view_module_version": "1.5.0",
       "_view_name": "HTMLView",
       "description": "",
       "description_tooltip": null,
       "layout": "IPY_MODEL_df5618780b904ffd92907de3e6a2bbfd",
       "placeholder": "​",
       "style": "IPY_MODEL_50db81c266e249b4b1c80d1463b2e541",
       "value": " 2/2 [00:18&lt;00:00,  9.44s/it]"
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
